Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preparing for next version #312

Merged
merged 5 commits into from
Aug 11, 2020
Merged

Preparing for next version #312

merged 5 commits into from
Aug 11, 2020

Conversation

vegaro
Copy link
Contributor

@vegaro vegaro commented Aug 7, 2020

No description provided.

Copy link
Member

@aboedo aboedo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we're moving from 3.6.0 beta, shouldn't it be 3.6.0 SNAPSHOT?

Copy link
Member

@aboedo aboedo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if we're moving from 3.6.0 beta, shouldn't it be 3.6.0 SNAPSHOT?

@vegaro
Copy link
Contributor Author

vegaro commented Aug 11, 2020

yes, you're right. When we release 3.6.0 we will update to 3.7.0-SNAPSHOT

@vegaro vegaro merged commit 32ad027 into develop Aug 11, 2020
@vegaro vegaro deleted the bump/3.7.0-SNAPSHOT branch August 11, 2020 18:09
aboedo pushed a commit that referenced this pull request Aug 26, 2020
* Preparing for next version

* Update RCSystemInfo.m

* Update .jazzy.yaml

* Update .jazzy.yaml

* back to 3.6.0-SNAPSHOT

added TPInAppReceipt pod, added logic to get intro eligibility from receipt

finished main logic for intro eligibility

small fixes to retention in closures

replaced pod dependency with embedded classes

added TPInAppReceipt license

clean up on intro eligibility calculator

updated the logic to get products info so that only one SKProductsRequest gets issued

added using the cache in productsManager

cleanup: used DI for the IntroEligibilityCalculator

fixed TPInAppReceipt compatibility with watchOS

added syncing with a queue + support for multiple concurrent requests to product manager

remove api key

specified os version availability for intro calculation in detail

ensured that data can't be nil before sending it to parser

also covered the case where receipt data is not null, but is empty

added missing import

remove pod from podspec

added files for local testing

WIP interpreting bytes from receipt

added parsing of data length, added methods to make parsing individual bits and bit ranges easier

added more generalized code to get asn1 containers

cleanup: moved methods into UInt8 extensinos

more cleanup: moved method into ASN1Container init

made constructor recursive, fixed issues with indexes

more iteration fixes

small cleanup

started unpacking InAppReceiptAttributes

more decoding of attributes

more decoding of attributes

decoded missing attributes

added algorithm for decoding object identifier

started cleanup: moved stuff to a separate class

cleanup, separated objectIdentifierParser

WIP extracting stuff into classes

added methods for easier print debugging

more cleanup

added more (undocummented) fields to in app purchase

moved to using our own solution instead of TPInAppReceipt for intro eligibility

removed TPInAppReceipt

cleanup, renames, removed unused files

separated inAppPurchase into its own class

split extraction logic into several factories

moved to using a single date formatter

method naming clenaup

separated ASN1ObjectIdentifier from factory

small update to use DI for the date formatter

more cleanup: unified duplicated logic to convert from bytes to different value types

renamed file from previous commit

moved more responsibility to the apple receipt factory, simplified the AppleReceipt class

moved logic for querying the apple receipt into the apple receipt class

moved more responsibility to the inAppPurchaseFactory and away from InAppPurchase

removed redundant class LocalReceiptParser

removed all force unwraps and replaced assumptions with more robust error handling and throwing custom exceptions

split code into builders, basic types and utilities

renamed factory -> builder

renamed factory -> builder

renamed Utilities -> Data Converters

removed unused extractableValueType protocols

added UInt8 extensions tests, simplified guard conditions

added tests for ArraySlice<UInt8>+Extensions

added tests for iOS3601 date formatter

renamed ASN1Type -> ASN1Identifier. Added first tests for ASN1ContainerBuilder

added more tests for asn1ContainerBuiler

added tests for short length asn1 containers

fixed rebase issues

cleanup

added tests for container length, added description to ASN1 errors

added more details to error cases, added tests for container length

removed unused property

added more tests for length and internal payload

made internal containers `let` since it's never modified outside of construction.
added tests for asn1ContainerBuilder's building of internal containers

- removed receiptAsData.txt, renamed sample receipt, added tests that compare directly against the sample receipt and serve as integration tests for local receipt parsing.

small cleanup

changed type of ASN1Length.value from UInt -> Int

inApp -> inAppPurchase

purchasedIntroOfferProductIdentifiers -> purchasedIntroOfferOrFreeTrialProductIdentifiers

clean up naming oid -> objectIdentifier

more naming cleanup

WIP adding container factory to make tests easier

added more factory methods

added more logic to be able to compose receipts for testing purposes.

added tests for minimal attributes in the receipt

added more tests for minimal attributes

added test for expires date

cleanup in container factory

added base code to be able to compose in app purchase containers for testing purposes

added tests for minimal attributes in in-app purchases

added tests for optional attributes

adds tests to ensure that in-app purchase build fails if attributes are missing, fixed tests not running for in-app purchase builder.

fixed bug in tests

added ASN.1 object identifier encoding to be able test decoding

added tests for all known object identifiers

added checks for empty and invalid object identifiers

cleanup

added tests to check that in app purchases are correctly added to the receipt

simplified ASN1ObjectIdentifierBuilder logic

fixed rebase issues

added some tests for ReceiptParser

renamed the methods in container factory removing the redundant build prefix

added remaining tests for ReceiptParser

moved containerFactory into TestHelpers

cleanup in IntroEligibilityCalculator, added class for tests

replaced classes with mocks

added more tests

updated intro eligibility calculator swift name so name lookup works correctly in tests

updated Swift name for other internal swift classes so we won't run into lookup issues with them

added test to check that only one SKProducts call is issued

added tests to check that eligibility is calculated correctly

removed redundant file SKProduct+TestExtensions, replaced with mockSKProduct

extracted mockProductsRequest into separate file for reuse

added more tests

added final tests for productsManager

fixed rebase issue

added link to docs for object identifiers

added link to apple docs for apple receipt fields

cleanup: extracted method to build internal containers

added docs and extracted method for variable length quantity decoder

added a couple of comments
aboedo added a commit that referenced this pull request Aug 27, 2020
* Preparing for next version (#312)

* Preparing for next version

* Update RCSystemInfo.m

* Update .jazzy.yaml

* Update .jazzy.yaml

* back to 3.6.0-SNAPSHOT

added TPInAppReceipt pod, added logic to get intro eligibility from receipt

finished main logic for intro eligibility

small fixes to retention in closures

replaced pod dependency with embedded classes

added TPInAppReceipt license

clean up on intro eligibility calculator

updated the logic to get products info so that only one SKProductsRequest gets issued

added using the cache in productsManager

cleanup: used DI for the IntroEligibilityCalculator

fixed TPInAppReceipt compatibility with watchOS

added syncing with a queue + support for multiple concurrent requests to product manager

remove api key

specified os version availability for intro calculation in detail

ensured that data can't be nil before sending it to parser

also covered the case where receipt data is not null, but is empty

added missing import

remove pod from podspec

added files for local testing

WIP interpreting bytes from receipt

added parsing of data length, added methods to make parsing individual bits and bit ranges easier

added more generalized code to get asn1 containers

cleanup: moved methods into UInt8 extensinos

more cleanup: moved method into ASN1Container init

made constructor recursive, fixed issues with indexes

more iteration fixes

small cleanup

started unpacking InAppReceiptAttributes

more decoding of attributes

more decoding of attributes

decoded missing attributes

added algorithm for decoding object identifier

started cleanup: moved stuff to a separate class

cleanup, separated objectIdentifierParser

WIP extracting stuff into classes

added methods for easier print debugging

more cleanup

added more (undocummented) fields to in app purchase

moved to using our own solution instead of TPInAppReceipt for intro eligibility

removed TPInAppReceipt

cleanup, renames, removed unused files

separated inAppPurchase into its own class

split extraction logic into several factories

moved to using a single date formatter

method naming clenaup

separated ASN1ObjectIdentifier from factory

small update to use DI for the date formatter

more cleanup: unified duplicated logic to convert from bytes to different value types

renamed file from previous commit

moved more responsibility to the apple receipt factory, simplified the AppleReceipt class

moved logic for querying the apple receipt into the apple receipt class

moved more responsibility to the inAppPurchaseFactory and away from InAppPurchase

removed redundant class LocalReceiptParser

removed all force unwraps and replaced assumptions with more robust error handling and throwing custom exceptions

split code into builders, basic types and utilities

renamed factory -> builder

renamed factory -> builder

renamed Utilities -> Data Converters

removed unused extractableValueType protocols

added UInt8 extensions tests, simplified guard conditions

added tests for ArraySlice<UInt8>+Extensions

added tests for iOS3601 date formatter

renamed ASN1Type -> ASN1Identifier. Added first tests for ASN1ContainerBuilder

added more tests for asn1ContainerBuiler

added tests for short length asn1 containers

fixed rebase issues

cleanup

added tests for container length, added description to ASN1 errors

added more details to error cases, added tests for container length

removed unused property

added more tests for length and internal payload

made internal containers `let` since it's never modified outside of construction.
added tests for asn1ContainerBuilder's building of internal containers

- removed receiptAsData.txt, renamed sample receipt, added tests that compare directly against the sample receipt and serve as integration tests for local receipt parsing.

small cleanup

changed type of ASN1Length.value from UInt -> Int

inApp -> inAppPurchase

purchasedIntroOfferProductIdentifiers -> purchasedIntroOfferOrFreeTrialProductIdentifiers

clean up naming oid -> objectIdentifier

more naming cleanup

WIP adding container factory to make tests easier

added more factory methods

added more logic to be able to compose receipts for testing purposes.

added tests for minimal attributes in the receipt

added more tests for minimal attributes

added test for expires date

cleanup in container factory

added base code to be able to compose in app purchase containers for testing purposes

added tests for minimal attributes in in-app purchases

added tests for optional attributes

adds tests to ensure that in-app purchase build fails if attributes are missing, fixed tests not running for in-app purchase builder.

fixed bug in tests

added ASN.1 object identifier encoding to be able test decoding

added tests for all known object identifiers

added checks for empty and invalid object identifiers

cleanup

added tests to check that in app purchases are correctly added to the receipt

simplified ASN1ObjectIdentifierBuilder logic

fixed rebase issues

added some tests for ReceiptParser

renamed the methods in container factory removing the redundant build prefix

added remaining tests for ReceiptParser

moved containerFactory into TestHelpers

cleanup in IntroEligibilityCalculator, added class for tests

replaced classes with mocks

added more tests

updated intro eligibility calculator swift name so name lookup works correctly in tests

updated Swift name for other internal swift classes so we won't run into lookup issues with them

added test to check that only one SKProducts call is issued

added tests to check that eligibility is calculated correctly

removed redundant file SKProduct+TestExtensions, replaced with mockSKProduct

extracted mockProductsRequest into separate file for reuse

added more tests

added final tests for productsManager

fixed rebase issue

added link to docs for object identifiers

added link to apple docs for apple receipt fields

cleanup: extracted method to build internal containers

added docs and extracted method for variable length quantity decoder

added a couple of comments

* readability improvements from PR comments

* another readability cleanup from PR comments

* added empty data test case for iso date formatter

* more readability improvements from PR comments

* more readability improvements from PR comments

* cleaned up the code of ASN1ObjectIdentifierEncoder a bit

* cleaned up conversion from string to binary

* small cleanup

* removed unused swift interfaces

* fixed missing swift references in main project

* shuffled tests into corresponding targets

* fixed tests for purchases target

* moved more files around

Co-authored-by: Cesar de la Vega <cesarvegaro@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants